#pragma once

#include <QString>
#include <QStringList>
#include <QJsonObject>
#include <QJsonDocument>

struct PackConfig {
    QString name;
    QString version;
    QString description;
    QString output;
    QString output_dir;
    QString source_dir;
    QStringList files;
    QStringList folders;

    // 默认构造函数
    PackConfig();
    
    // 从JSON对象加载配置
    bool fromJson(const QJsonObject& json);
    
    // 转换为JSON对象
    QJsonObject toJson() const;
    
    // 从文件加载配置
    bool loadFromFile(const QString& filePath);
    
    // 保存到文件
    bool saveToFile(const QString& filePath) const;
    
    // 验证配置是否有效
    bool isValid() const;
};
